package com.campusbackend.service;

import org.springframework.web.multipart.MultipartFile;

import java.util.Map;

/**
 * 文件上传服务接口
 * 
 * @author yezi
 * @since 2025-07-27
 */
public interface FileUploadService {
    
    /**
     * 上传图片文件
     * 
     * @param file 上传的文件
     * @return 上传结果，包含文件URL、原始文件名、文件大小等信息
     */
    Map<String, Object> uploadImage(MultipartFile file);
    
    /**
     * 删除文件
     * 
     * @param fileUrl 文件URL
     * @return 删除是否成功
     */
    boolean deleteFile(String fileUrl);
    
    /**
     * 验证文件类型是否为图片
     * 
     * @param file 上传的文件
     * @return 是否为图片文件
     */
    boolean isImageFile(MultipartFile file);
    
    /**
     * 验证文件大小是否符合要求
     * 
     * @param file 上传的文件
     * @param maxSizeInMB 最大文件大小（MB）
     * @return 文件大小是否符合要求
     */
    boolean isValidFileSize(MultipartFile file, int maxSizeInMB);
}
